Gait-based biometric system for detecting weight gain or loss

ABSTRACT

Systems and methods for determining a user&#39;s static weight while standing as well as the user&#39;s load bearing weight. A sensor module with multiple sensors is placed inside a user&#39;s shoe and biometric data is gathered from the sensors when the user stands and when the user takes a step or walks. The data is used to generate data loops as the various sets of data are plotted against each other. The loops obtained from the data are then compared against stored loops previously obtained. Using the biometric loop baseline data, it can be determined whether the user has lost or gained weight, whether a specific load bearing weight condition is worsening while standing and while walking or running. The system can also determine whether a specific load bearing weight condition is improving or worsening.

RELATED APPLICATIONS

This application is a Continuation-in-Part of U.S. patent applicationSer. No. 13/939,923 filed Jul. 11, 2013, which is a Continuation-in-Partof U.S. patent application Ser. No. 13/581,633 filed Dec. 6, 2012.

TECHNICAL FIELD

The present invention relates to a gait based biometric system used forthe detection of a person's static and or load bearing weight. Morespecifically, the present invention relates to a diagnostic system basedon biometric loop signature formation with data comparison beingperformed using an insole insert in a shoe to determine weight.

BACKGROUND

The increase in activity in the mobile healthcare and user discretediagnostic fields have highlighted some shortcomings of currentdiagnostic and personalized analytical systems targeted at static weightwhile standing and load bearing weight while walking.

Weight diagnostic systems generally come in a number of categories witha range of purposes and uses. In general, weighing systems useelectronic based digital scales which, when stood upon by a person,measures and displays the person's static weight in a manner common tothose systems and devices. These measurements are used to determinestatic weight gain or loss, as well as for the analysis of dietaryhealth, fitness and activity level, as well as possible diseaseassociation. Weight monitoring, for example, is critical to the healthand wellbeing of a person with renal failure and is a requirement forthe use of a dialysis machine. Load bearing weight while standing,walking and/or running, for example, are important indicators indetermining progression or regression of a given activity, therapy orremedy. Adverse reactions to prescribed pharmacological and therapeutictreatments of disease, as well as post-surgical rehabilitation are knownto adversely affect a person's weight.

The above noted weighing systems have their drawbacks. Specifically,general weighing systems are fixed devices normally found in homebathrooms, at doctor's offices, and in hospitals and they display thestatic weight of the person. Similarly, other weight bio-sensing devicesare limited in scope and use. As well, they usually involve expensivefixed systems normally found in research laboratories and universities.These and other current weighing systems have been seen as too limitedwhen also considering angular kinematics of the joints, center of force,or plantar center of pressure and body segments or load bearing weightthrough a walking person's gait phase. They are also seen as notsuitable for mobile use.

There is therefore a need for a weighing diagnostic system that isneither static nor linear in scope and use. As well, such a weighingdiagnostic system is preferably wearable and mobile, capable of dynamicload bearing measurements while standing and through a walking person'sgait phase and not be vulnerable to power failures within a selecttimeframe. It is also preferred that the weighing diagnostic system havethe ability to measure and assess the user's unique biometric loopsignature data associated with the user's static weight and load bearingweight at any time interval for instantaneous comparison against astored loop signature. Preferably, the system also allows for thestorage of the loop signature comparison data as well as results. Thesecan then be used for communication to an external device or system forongoing analysis in providing personalized recommendations,therapeutics, remedies and or products.

SUMMARY

The present invention provides systems and methods for determining auser's static weight while standing as well as the user's load bearingweight through the user's gait. A sensor module with multiple sensors isplaced inside a user's shoe and biometric data is gathered from thesensors when the user stands and when the user takes a step or walks.The data is used to generate data loops as the various sets of data isplotted against each other. The loops obtained from the data are thencompared against stored loops previously obtained. Based on the resultsof the comparison, the user's static weight while standing and loadbearing weight (through the user's gait) is identified. Using thebiometric loop baseline data, it can be determined whether the user haslost or gained weight, whether a specific load bearing weight conditionis worsening while standing and while walking or running. The system canalso determine whether a specific load bearing weight condition isimproving or worsening.

In one embodiment, the user's biometric data is, preferably, previouslyextracted from the assignment and first use of the apparatus and fromthe user's gait. The previously gathered data, and the plotted loopsderived therefrom, can be used as a baseline for the user. This baselinedata can include static weight while standing and load bearing weightwhile the user is walking. Subsequent biometric data sets gathered fromthe user can then be compared against the baseline. Depending on thecomparison results, a progression or regression of a user's staticweight while standing and load bearing weight as the user walks can bedetermined. Data gathered from the general population at large, andusing analytical methods, can be used to establish any correlationbetween a person's changing gait as he or she participate in weightmonitoring for weight loss or gain and for health specific monitoring ofweight. The treatment effects of prescribed pharmacological and/ortherapeutic remedies such as diets, exercise, and physiotherapy can alsobe determined using the biometric data from the user as the useradvances in his or her treatment regime or activity. Periodic gatheringof the user's biometric data can be used to track and monitor theeffects of the treatment regime or activity on the user's gait toestablish any causal link between the weight specific regime, theangular kinematics of the joints and body segments, and the user'sstanding posture and his or her gait. Such links and the specificeffects of the treatment regime or activity can then be used to furtherheighten the effectiveness of shoe based biometric data gatheringdevices as individualized weight diagnostic tools.

In a first aspect, the present invention provides a method fordetermining changes in a user's weight using a foot-based gait device,said device having a plurality of sensors for gathering gait-based data,the method comprising:

-   -   a) selecting two of said plurality of sensors;    -   b) gathering data from each sensor selected in step a);    -   c) correlating data gathered from said two sensors such that        data points gathered at similar instances are matched with one        another to result in data pairs;    -   d) determining at least one characteristic loop from said data        pairs, each characteristic loop being a loop formed when said        data point pairs are plotted;    -   e) retrieving baseline characteristic data, said baseline        characteristic data being derived from data resulting from        biometric data previously gathered from said user;    -   f) determining a baseline characteristic loop from said baseline        characteristic data;    -   g) comparing characteristics of said at least one characteristic        loop determined in step d) with characteristics of said baseline        characteristic loop determined in step f);    -   h) in the event a comparison of said characteristics compared in        step g) produces results not within predetermined limits,        determining that a change has occurred in said user's weight;    -   i) in the event a comparison of said characteristics compared in        step g) produces results within predetermined limits,        determining that a change has not occurred in said user's        weight.

In a second aspect, the present invention provides a system fordiagnosing a change in a user's weight, the system comprising:

-   -   a sensor module comprising at least one sensor for gathering        gait-based biometric data from said user;    -   a data storage module for storing data relating to a baseline        loop, said baseline loop being a loop resulting from a plot of        data pairs derived from data gathered from said sensor module        when said user first uses said system;    -   a data processing module for receiving data from said sensor        module, said data processing module being for determining        characteristic loops from said data received from said sensor        module and for comparing characteristics of said characteristic        loops with characteristics of said baseline loop;

wherein

-   -   a change in said user's weight is indicated when said        characteristics of said characteristic loops are not within        predetermined limits of said characteristics of said baseline        loops.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the present invention will now be described byreference to the following figures, in which identical referencenumerals in different figures indicate identical elements and in which:

FIG. 1 is a block diagram of the system according to one aspect of theinvention;

FIG. 2A is an image illustrating the different forces applied by a humanfoot as it takes a step;

FIG. 2B is a diagram illustrating different zones on an insole accordingto one embodiment of another aspect of the invention;

FIG. 3 illustrates raw data waveforms and data waveforms after a lowpass filter has been applied;

FIG. 4 illustrates loops plotted using raw data and filtered data;

FIG. 5 illustrates a number of characteristic for different sets of datafrom the same user as well as an average characteristic loop derivedfrom the other loops;

FIG. 6 illustrates the different characteristics which may be derivedfrom the characteristic loops;

FIG. 7 illustrates characteristic loops using highly correlated data;

FIG. 8 shows average characteristic loops for different users;

FIG. 9 is a flowchart illustrating the steps in a method according toanother aspect of the invention.

DETAILED DESCRIPTION

Referring to FIG. 1, a block diagram of one embodiment of the presentinvention is illustrated. As can be seen, the system 10 includes asensor module 20 coupled to a data processing module 30 and which mayreceive data from a storage module 40. In broad terms, the sensor module20, having multiple sensors 20A, generates biometric data from thesensors (biometric data based on the static and or load bearing weightas the user is walking) which is then sent to the data processing module30. The data processing module 30 then processes the biometric data andretrieves signature data from the storage module 40. The signature datacomprises data that was previously gathered from the user who iscurrently using the biometric insole device. The data processing modulethen compares the signature data with the biometric data gathered fromthe multiple sensors. If there are differences between the newlygathered data and the previously gathered data, the data processingmodule then determines if these differences in the user's static and orload bearing weight could be symptomatic or indicative of a healthcondition being monitored. Such a health condition may includecontrolled weight gain for a dialysis patient or a reduction in stridelength or balance impairment for a user afflicted with Parkinson'sdisease.

Optionally, the system may include a communications module 50 that iscoupled to the data processing module 30. The communications module 50may send and/or receive communications regarding the comparison betweenthe signature data and the data gathered from the sensors. Thecommunications module 50 may send the data gathered to the dataprocessing module 30 such that the data processing is performed remotefrom the user and/or from the sensor module 20.

It should be noted that the sensor module 20 has multiple sensors whichgather data regarding a person's biometric characteristics such asstatic weight and load bearing weight through the user's gait. In oneembodiment, the sensor module is an insole positioned inside the user'sshoe, with the insole having multiple discrete force sensors that detectthe amount of force or pressure exerted on a section or region of theinsole. With multiple regions on the insole and at least one sensorpositioned on each region, a user's static and load bearing weight whilestanding and as the user is walking can be profiled as being the amountof pressure that that user exerts on each region over time as the userstands and as the user takes a step. A variant of this sensor modulewould have at least one strain gauge positioned such that the pressureexerted on each of the multiple regions of the foot are detected by thegauge pressure mapping with each region corresponding to a section ofthe strain gauge. With such an arrangement, each section of the straingauge thus acts as a different discrete sensor and provides a rechargecurrent back to the system module 20.

It should be noted that, in one embodiment, two insoles are used peruser. This way, static and load bearing weight gait-based data may begathered for each user foot. Data gathered from the user's left foot maybe processed differently from data gathered from the user's right foot.Alternatively, another embodiment only uses a single insole such thatonly one set of data is gathered per user. While the description belowrelates to a single insole, for a two insole embodiment, both insoleswould be similar to one another and would, preferably, each conform tothe description and principles outlined below.

Referring to FIGS. 2A and 2B, a schematic illustration of a number ofdiscrete pressure zones on an insole is illustrated. FIG. 2A shows animprint of a human foot and the unique pressure points for a specificperson. FIG. 2B illustrates the location of 8 specific pressure zones orareas on one embodiment of a pressure sensing insole. Each zone in FIG.2B has a pressure sensing pad or sensor assigned to it such that thepressure exerted on each zone can be measured. A variant of this sensormodule would have, instead of discrete sensor pads at each zone, asingle strain gauge positioned as described above.

In the above embodiment, each sensor in the sensor module produces asignal linearly proportional to the force being applied to the sensor.Preferably, each sensor or zone would have a data channel dedicated toits readings for transmitting those readings to the data processingmodule. Alternatively, in one implementation, the readings can be timedivision multiplexed on to a single data line from the sensor module tothe data processing module. In this implementation, the data is passedthrough a single A/D converter to produce multiplexed channels, one foreach sensor. Of course, while there are eight zones in FIG. 2B, othervariants may have more or less than eight zones.

In another embodiment, the user's insole is equipped with accelerometersat different sections of the foot. At least one accelerometer can bepositioned at the heel and at least one accelerometer can be positionedat the toe of the user. Each accelerometer can provide data as to theroll, pitch, and yaw (in 3 dimensional coordinates) of the insole as theuser stands and is moving. The roll, pitch, and yaw for eachaccelerometer can thus be additional data points sensed and transmittedfrom the sensor module to the data processing modules.

Regarding the data stream produced when the user is standing and orwalking, in one embodiment, each sensor produces several hundred samplesequating to approximately ten steps taken by the user. This data streamis then saved and examined by the data processing module and the actualstep points are determined, static weight is established and loadbearing weight is isolated. Each step is identified and the saved datastream resampled at a precise rate of approximately 100 samples perstep.

It should be noted that multiple parameters regarding the user's staticand or load bearing weight can be extracted from the data produced bythe sensor module depending on the type of sensors used. Theseparameters can then be used as points of comparison with the signature(or characteristic) data mentioned above. Some of these parameters maybe:

-   -   Actual forces    -   Relative (normalized) forces.    -   Ratios between the peak forces in the eight sensor zones    -   Relative timing between forces on each sensor (strike and        release sequence)    -   Average rate of change of force on each sensor zone    -   Average rate of change of force on each sensor zone    -   Maximum rate of change of force on each sensor zone    -   Frequency spectrum of the waveform from each sensor (ratio of        values of harmonics derived from a Fourier transform)    -   Velocity and acceleration of the heel and toe in the three axes,        i.e. roll, pitch, and yaw.    -   Heel strike and toe lift off impact forces in the three axes.    -   Velocity and acceleration in the three axes during leg swing.    -   Data waveform shape matching (waveform shape matching)

The parameters extracted from the data stream may then be compareddirectly or indirectly with the signature data noted above.

In one comparison scheme, the parameters extracted are used to derive ashape or loop, the characteristics of which can the compared withcharacteristics of a signature loop or shape. The use of a loop or shapeallows for an indirect comparison between the data read by the sensormodule and the signature or characteristic data. As well, it allows formore complex comparison schemes and for easier use of tolerances in thecomparison.

For this comparison scheme, data from two different sensors are read bythe data processing module. The two data sets (one from a first sensorand a second from a second sensor) are correlated with one another tosynchronize the readings. This is done so that the data readings aresynchronized in their time indices. Once synchronized, readings taken atapproximately the same time index are matched with one another. Thus theresult is that a data reading from sensor A taken at time t1 is matedwith a data reading from sensor B taken at time t1. The mating stepresults in a set of pairs of data readings from two different sensors.

It should be noted that a preferable preliminary step to the correlationstep is that of applying a low pass filter to both sets of data. Such alow pass filter would remove the low frequency components of the signalsand would provide cleaner data and thus make it easier to processsignals.

As an example of the processing performed on the data streams receivedfrom the sensor modules, FIGS. 3-8 are provided to aid in theunderstanding of the process. Prior to any processing, data streams arefirst received from all of the sensors for a given fixed duration. Foreach sensor, the data stream for the given duration is saved by the dataprocessing module. The resulting waveform for each sensor is thenpartitioned to determine, for example, standing weight and load bearingweight associated with the discrete steps taken by the user. If thesensors are force/pressure sensors, this partitioning may be done bysearching for peaks and valleys in the waveform. Each peak would denotea maximum force applied to the sensor and each valley would denote aminimum (if not absence) of force. Standing weight and each step canthen be seen as two valleys with a peak in between, representing theuser's foot on the ground, foot in the air, the actual step, and thenuser lifting his/her foot again. Alternatively, depending on how thesystem is configured, standing weight and each step might be seen as twopeaks bookending a valley.

Referring to FIG. 3, two raw data streams is shown at the bottom of theplot. After a low pass filter is applied to the signals, the smootherwaveforms are shown at the top half of FIG. 3. From FIG. 3, one can seemaximum force applied to the force pads for the two steps captured bythe waveforms.

Once the discrete steps have been delineated in the data received fromeach of the sensors, each step for each sensor is then resampled toarrive at a predetermined number of data samples for each step. For theresampling, each sample is for a predetermined time frame and at apredetermined point in time in the current step. As an example, if eachstep lasts approximately 0.1 sec and 100 samples per step are desired,then the first sample is taken at the first one thousandths of a secondin the waveform and the second sample is taken at the second onethousandths of a second and so on and so forth. This method essentiallysynchronizes all the samples such that it would be simple to determineall samples (from all the sensor readings) taken at the first onethousandths of a second or all samples taken at the first fifty onethousandths of a second as the relevant samples would all be similarlytime indexed.

Once the different data waveforms from the different sensors have beensynchronized, any two of the sensors and the data they produced can beselected for comparison with the stored data of signature data and whichmay be stored in the data storage module. This signature data or storeddata may be used as the baseline for comparison with the data gatheredfrom the sensors. Depending on the configuration of the system, thesignature or characteristic or baseline data stored in the data storagemodule may take numerous forms. In one example, multiple data sets/pairs(either filtered or as raw data) from the user using the system may bestored so that a signature loop may be derived from the signature datawhenever the characteristics of that signature loop are required. Asnoted above, this signature data may be used as the baseline forcomparison with the sensor acquired data. For this example, all the datapairs from all sensors would be stored so that any two sensors may beselected. Alternatively, the specific characteristics of the signatureor baseline loop may be stored as the signature or characteristic orbaseline data if one wanted to dispense with determining the signatureloop every time a comparison needs to be made. As another alternative,only the data relating to the average signature or baseline loop derivedfrom the user may be stored as signature or baseline data. Of course, ifmultiple sensors are to be used, then most possibly average signature orbaseline loops from the user data would be stored. In one otheralternative, all the raw data (either filtered or not) from the user'ssteps may be stored as signature or baseline data. Such a configurationwould allow for the greatest amount of flexibility as the system couldrandomly select any two of the sensors to be used and the signature orbaseline data from the authenticated user would be available for thosetwo sensors. As noted above, this configuration would require that thesignature or baseline loop be calculated every time a comparison isrequired. The signature or baseline data may, if desired, be stored inencrypted format. In all instances, static weight and load bearingweight through the user's gait form distinct characteristic loop datasets.

Once two of the sensors are selected from the sensors available in thesensor module (in this example the sensor module has 8 sensors, one foreach of the eight zones illustrated in FIG. 2B), the resampled data forthose two sensors are then mated with one another. This means that eachtime indexed sampling will have two points of data, one for the firstsensor and another for the other sensor. These pairs of sensor readingscan thus be used to create a characteristic loop. As an example, ifsensors A and B are used and n denotes an index, then A[n] denotes thenth sampled reading from the waveform received from sensor A for aspecific step. Similarly, B[n] is the nth sampled reading from thewaveform received from sensor B for the same specific step. {A[n], B[n]}thus constitutes a data pair for the nth reading for that particularstep. Plotting all the data pairs for a particular step, with readingsfrom one sensor being on one axis and readings from the other sensor onthe axis, results in an angled loop-like plot (see FIGS. 4-8 asexamples). For pressure/force readings, this is not surprising as theforce exerted by the foot while standing and in a particular stepincreases to a maximum and then decreases to as minimum as the personincreases the weight the place on the foot and then removes that weightas the step progresses.

Once the data pairs have been created, a plot of the resulting loop canbe made. As noted above, FIG. 3 shows the waveforms for two signals—thelower waveform being the raw data stream waveforms for 2 signals and theupper waveforms for the same 2 signals after a low pass filter has beenapplied. FIG. 4 shows a plot of the two sets of waveforms in FIG. 3. Oneloop in FIG. 4 is derived from the raw signal waveforms in FIG. 3 whilethe other loop is derived from the low pass filtered waveform in FIG. 3.As can be seen in FIG. 4, a smoother loop is produced by using thelow-pass filtered signals. It should be noted that the x-axis in FIG. 4contains the values gathered from the first sensor selected while they-axis contains the values gathered from the second selected sensor. Itshould be noted that while the embodiment discussed uses only a pair ofsensors, the concept is applicable for 3, 4, or any number of sensors.If data from 3 sensors were used, then, instead of a 2D loop, a 3D loopmay be created as a characteristic loop.

It should be noted that a loop can be formed for each one of the stepscaptured by the sensors. An averaged loop can be derived from thevarious loops formed from all the steps captured by the sensors.Referring to FIG. 5, the various loops from the various steps can beseen on the plot. An average loop (see darker loop in FIG. 5) is derivedfrom all the loops captured using the low pass filtered waveforms.Multiple methods may be used to determine the average loop. However, inone embodiment, the points for the average loop are derived by averagingthe various readings for each particular time index. As such, if thedata pairs are as (An[i],Bn[i]) with An[i] denoting the nth reading forsensor A at time index i and Bn[i] denoting the nth reading for sensor Bat time index i, then to derive the data reading for sensor A for theaverage loop for time index i, one merely averages all the An[i] wheren=1, 2, 3, etc., etc. Similarly, for data readings for sensor B for theaverage loop for time index i, one merely averages all the Bn[i] wheren=1, 2, 3, etc., etc. By doing this for all the multiple time indices,an average loop is derived from all the characteristic loops.

Once the average loop has been derived, the characteristics of thataverage loop can be determined. Referring to FIG. 6, some of thecharacteristics of the average loop can be seen. The length of the loop(measured from the origin), the width of the widest part of the loop,and the area occupied by the loop are just some of the characteristicswhich may be determined from the loop. As well, the direction of theloop (whether it develops in a clockwise or anti-clockwise manner) mayalso be seen as a characteristic of the loop. Another possiblecharacteristic of the loop may be the angle between a ray from theorigin to the farthest point of the loop and one of the axes of theplot. Additional characteristics of these loops may, of course, be useddepending on the configuration of the system.

As another example of possible loops, FIG. 7 shows loops resulting fromhighly correlated data from the sensors. Such highly correlated data mayproduce loops that, at first glance, may not be overly useful. However,even such lopsided loops may yield useful characteristics. As anexample, the amplitude from the furthest point may be used for aninitial assessment of static or dynamic weight distribution.

Once the average loop for the steps captured by the sensors isdetermined, the characteristics for this average loop can be derived.Once derived, the same process is applied to the signature or baselinedata stored in the storage module. The characteristics for the resultingsignature or baseline loop (from the signature data) are then comparedto the characteristics of the average loop from the data acquired fromthe sensors.

Referring to FIG. 8, a comparison of an average loop and a baseline loopfrom the gait of one individual is illustrated. As can be seen, thecharacteristics of the two loops are quite different. One loop isclearly larger (more area), longer (length of loop), and wider (width atwidest of the loops) than the other loop. It should be noted that customtolerances can be applied to the comparison. Depending on the toleranceapplied, the comparison can be successful (the characteristics matchwithin the tolerances) or unsuccessful (even within the tolerances,there is no match). It should be noted that, as noted above, comparisonscan be made for loops from a single user with data taken at differenttimes. As an example, a user may have gait data taken at a visit (orcommunicated through electronic means) to a dietician, physician by wayof a software application residing on an external electronic device.Later data sets can then be taken or uploaded for the same user atsubsequent visits to a dietician, physician or other care giver.Similarly, these readings can be communicated to the care giver byelectronic means or gathered using a software application residing on anexternal electronic device. The loops derived from the initial data setand the subsequent data sets can then be compared to determine how aparticular treatment regime or activity has affected that user's staticweight while standing and/or load bearing weight (gathered by way of theuser's gait) over time.

Regarding tolerances, these can be preprogrammed into the system and canbe determined when the signature or baseline data is gathered. As anexample, a tolerance of 15% may be acceptable for some users while atolerance of only 5% may be acceptable. This means that if thecalculated characteristic of the average loop is within 15% of thecalculated characteristic of the signature loop, then a match isdeclared (i.e. there is no difference in a user's condition, weight, orgait). A match would indicate that there is no relevant differencebetween the loops being compared. Similarly, if a tolerance of only 5%is used, then if the calculated characteristic of the average loop iswithin 5% of the calculated characteristic of the signature loop, then amatch is declared. Of course, if the calculated characteristic of theaverage loop is not within the preprogrammed tolerance of the calculatedcharacteristic of the signature loop, then a non-match is declared. Anon-match would indicate that there is a relevant difference between theloops being compared. A match may indicate that, for example, atreatment regimen or activity has affected a user's static and/or loadbearing weight between the time the first set of data was gathered tothe time the second set of data was gathered. A non-match means that thebaseline data and gathered data are different and that a change hasoccurred.

It should also be noted that, in addition to the tolerances noted above,the system may use a graduated system of matches or matching. This wouldmean that a level of confidence may be assigned to each match, a highlevel of confidence being an indication that there is a higherlikelihood that there is a match between the two sets of data derivedfrom the average loop and the signature loop. A match can then bedeclared once the level of confidence assigned is higher than apredetermined level. A non-match can similarly be declared once thelevel of confidence is lower than a predetermined level. A level ofindecision can be declared when the level of confidence is between thetwo preset levels for match and non-match. If a set of data falls withinthe gray area or an area of indecision between the two preset levels,then more data can be retrieved from the sensors and this data can beprocessed as above to arrive at a determination of a match or anon-match.

It should further be noted that, as an alternative, instead of simplymatching or not matching a baseline or signature loop against a loopfrom a user's static and or load bearing weight data, the amount ofdifference between the two loops can be determined. A significantdifference between the characteristics of the two loops, derived fromdata gathered from the same user using the same sensors in the sensormodule at different times, would indicate a change of some sort. Asignificant difference between such two loops would indicate asignificant change from the time the first data set was gathered to thetime the second data set was gathered. As noted above, this may indicatethat a treatment regimen or activity was having an effect on the user'sstatic and/or load bearing weight. It may also indicate that a user'scondition is either progressing or regressing. The characteristics forwhich a difference may be found may, as noted above, include the size ofthe loops, the angle of the loops to one of the axes of the plot, theperimeter of the loops, the area covered by the loops, as well as othercharacteristics. A tolerance may, of course, be built into thecomparison subroutine. As an example, if the tolerance is set at 2% andif a characteristic of two loops is within 1% (i.e. less than 2%) ofeach other (e.g. the sizes of the two loops) then no difference isconcluded.

For greater clarity, the difference between two loops may be quantifiedand, depending on how great the differences are, notifications or alarmsor other steps may be taken. As an example, if the area of a loopderived from a user's initial data set is compared with the area of aloop derived from a data set gathered a few months later, thedifferences may be significant. If there is no appreciable difference,then one can conclude that no change has occurred in the user'scondition. If, on the other hand, the second data set has a much largerarea (e.g. 25% greater area than the area covered by the loop from thefirst data set), this may indicate that the user is walking slower orthat the user is placing more pressure on his feet with each step.Depending on the user's static weight and load bearing weight, this mayindicate a progression (losing weight) or a regression (gaining weight),especially if the treatment or regimen is designed to reduce the user'sweight. It may also indicate that a treatment regimen such as a dietaryor pharmacological supplement being used may not be effective. Athreshold may thus be programmed so that if the difference in value of acharacteristic being compared between two loops exceeds a specificamount or percentage, an alarm or notification may be activated. Thisalarm can be a warning alarm or a congratulatory alarm depending on thedesired use.

Regarding the programming or storage of the signature or characteristicdata into the system, this is preferably done when the user who is to beweighed (static and load bearing) is first encountered. This first dataset can provide a baseline set of data to be used in comparison withsubsequent data sets. This is done by having the user use theinsole/sensor module by standing for a number of seconds and then takinga specific number of normal steps. These data sets are then captured inthe system and are stored as signature/characteristic or baseline data.Once stored, the signature data can be retrieved and variouscharacteristics of the signature data (by way of the signature loop) canbe determined as described above. As described above, the signature datastored may take any number of forms. The signature data may be the rawdata gathered from the authenticated user when s/he stood in place forthe specific amount of time and then took the specific number of normalsteps. Alternatively, the signature data may be the filtered version ofthe raw data or it may be the various characteristics of the variouspossible signature loops. Also, instead of the raw data which forms thewaveforms, the waveforms themselves may be stored as signature data. Thesignature data may take any form as long as the characteristics of thesignature loops may be derived from or be extracted from thesignature/characteristic/baseline data.

Referring to FIG. 9, a flowchart of the process described above isillustrated. To store the signature data into the system, the initialstep 100 in the process is that of selecting two of the sensors to beused in the comparison process. As noted above, the sensors are, in oneembodiment, inserted or installed in a user's shoe. Once the sensorshave been selected, data is gathered from these sensors as the userstands and walks normally (step 110). Once gathered from the sensors,the data is then correlated with one another to form the data pairsnoted above (step 120). This means that data points from one sensor ismated with data points from another sensor. With the data pairs in hand,at least one characteristic loop can then be created/derived from thedata pairs (step 130). Depending on the configuration, discrete stepsmay be separated from one another so that each step may have its owncharacteristic loop. Alternatively, an average characteristic loop maybe derived from the data values from the sensors. Once the averagecharacteristic loop has been found (step 140), the signature or baselinedata can be retrieved (step 150). The signature data, depending onconfiguration can then be used to determine the signature loop (step160). The characteristics of both the average characteristic loop andthe signature loop can then be calculated or derived from the two setsof data (step 170). The characteristics are then compared (step 180),taking into consideration the preprogrammed tolerances. If thecharacteristics from the two sets of data are the same (step 190)(within the preprogrammed tolerances) then a match is found (step 200)indicating no change in the user's static and or load bearing weight(step 210). If they are not within the preprogrammed tolerances, then nomatch is found (step 220) and a potential change in the user's staticand/or load bearing weight is indicated (step 230).

The process may also be seen as eight specific steps.

The first processing step after retrieving the data is that of filteringthe sensor signals by applying a DFT (Discrete Fourier Transform) basedlow-pass filter. The cut-off frequency of the filter is defined takinginto account a Nyquist frequency (related to the sampling rate) on thehigh end, and a main signal frequency (related to the walking speed ofthe individual) on the low end. Walking frequency estimation is also apart of the described processing step.

Using an FFT (Fast Fourier Transform) implementation technique andsync-filter as a benchmark, a low pass filter with a flat pass-band (lowripple) high stop band attenuation may be used. Additional advantage istaken from the use of non-causal filters since the hard-realtimeprocessing is not required (signals are registered first and thenfilters are applied).

The second processing step is the construction of the characteristicloop for the chosen pair of signals. The characteristic loop is anordered set of points with coordinates (X(i),Y(i)) where X(i) is a firstchosen signal, Y(i) is a second chosen signal, and i is an indexcorresponding to the sample number.

An autonomous loop is constructed for the time period (subset of allsamples) corresponding to the evolution of both signals from low levelto maturity level and back to low level. Such a construction is possiblesince the low level of all signals have a non-empty intersectioncorresponding to the foot not contacting the ground.

Due to the quasi-periodicity of all signals resulting from the nature ofhuman walking, characteristic loops can be constructed autonomously forseveral periods in time. Although initially defined for raw signals,autonomous loops can then be constructed for smoothed signals (obtainedafter the first processing step of applying a filter to the data).

The third processing step is that of averaging the loops. Several loopsare constructed according to the recording of several steps while theperson is walking. Those steps and the resulting loops are subject tosignificant variations. It has been found that only the average loopprovides a stable and robust characteristic for static and load bearingweight readings obtained as the user walks.

Averaging of the loops is done by artificially synchronizing severalloops (as corresponding to several steps) followed by a weightedaveraging of the synchronized loops. Weight factors are computedaccording to the phase shifts from an estimated reference signal (mainwalking frequency—as per first processing step).

The fourth processing step consists of extracting initial geometricalparameters from the average loop such as loop length, loop width,direction of longitudinal axes, loop directionality (clockwise orcounter-clockwise) and the area inside the loop. Othercharacteristics/parameters which can be used are the variance of eachparameter listed above as computed for standing and individual walkingsteps and as compared to the average value (computed from average loop).

Other parameters which can be extracted may use:

-   -   Geometrical method—identify a point on the loop farthest from        the origin (let us call the point M and the origin O). This        point is the used to find the length (|OM|) and direction of the        longitudinal axis (OM). The width of the loop is defined as the        longest line perpendicular to OM and which intersects the loop.    -   Statistical approach—considering the loop as the cloud of        points, the elliptical fit (correlation analysis) can be        applied, followed by extraction of the parameters of the fitted        ellipse (major and minor axis length and orientation).

Regarding loop directionality, the directionality of the loop is relatedto the phase shift between signal Y and signal X. Namely, the loop isclockwise if the Y signal (the signal plotted on the Y axis) grows fromlow level to maturity first, followed by the growth of X signal (thesignal plotted on the X axis). The loop is counter-clockwise if the Xsignal grows first relative to the Y signal.

The fifth processing step consists of analysing special cases. It isworth noticing that in some cases, for some pairs of signals, theconstruction of the loop as described above might yield less thanperfect results. This may result in a “degenerated loop” due to a highcorrelation between signals. The “loop” in such case is located veryclose to the diagonal. For this case only the point farthest from theorigin is actually computed (corresponding to maximal amplitude of bothsignals).

The sixth processing step consists of comparing the loops computed from2 separately recorded data. It has been found that the proposedparametric representation of the pair-wise average loops (see FIG. 8 asan example) has a high discrimination efficiency. Namely, for severalpairs of signals/sensors extracted from the set of 8 signals/sensors,the average loops constructed from the smoothed signals stablydemonstrate significant similarities when constructed from the datacorresponding to the same individual as well as significant differencesfrom average loops constructed for different individuals. Accordingly,this parametric representation should provide sufficient performancewhen discriminating between different data sets.

The seventh processing step consists of combining the results of thecomparison of several (up to all 56 possible pairs from 8 differentsensors/signals) pairs in order to produce a highly efficientdiscriminate function. Results from various pairs are first weightedaccording to the number of parameters that can be robustly estimated tosupport the comparison of the loops. Finally, the results from variouspairs can be fused using a Dempster-Shaefer framework for an estimationof the likelihood that loops from the baseline data and the gathereddata are similar or not.

In addition to the above processing steps, it should be noted that, forweight-based applications, the data gathered can be expected to have anumber of behaviours. The characteristics that are extracted whenperforming the loop signature computation (see above) can be divided inthree classes:

A) (Class-1) Dimensionless parameters such as:

-   -   (1) loop directionality,    -   (2) direction of longitudinal axes of the loop,    -   (3) loop elongation (e.g. major to minor axis ratio), etc., as        well as standard deviations of those parameters computed over        all of the collected data.

B) (Class-2) Size-type parameters having a single dimension such as:

-   -   (1) loop length,    -   (2) loop width,

(3,4) major and minor axis of elliptical approximation of the loop (seeitem 0050), etc. as well as standard deviations of those parameterscomputed over all of the collected data.

C) (Class-3) Area-type parameters having two dimensions such as:

-   -   (1) area of the loop,    -   (2) product of major and minor axis of elliptical approximation        of the loop and variance of those parameters computed over all        of the collected steps.

These 3 classes of the parameters are used in different ways in weightestimation processing. Dimensionless parameters (Class-1) are expectedto be invariant to the weight changes. Size-type parameters (Class-2)are expected to be proportional to the weight change reflecting factthat the loop is stretched or contracted according to the weight changefactor (i.e. the ratio of newly estimated weight to the older one).Area-type parameters (Class-3) are expected to be proportional to thesquare of the weight change factor.

The processing of the weight-based data can be summarized into thefollowing steps:

1. Extraction of the data pairs that provide the robust estimation ofrelevant parameters;2. Estimation of the of the weight change factor from the class-2(direct) and class-3 (as square root) parameters and verification ofinvariance of class-1 parameters;3. Determination of the hypothetical (average) value of the weightfactor;4. Analysis of the result based on Dempster-Shaefer framework in orderto estimate the likelihood that the gathered data supports thedetermined value.

It should also be noted that a data histogram of daily loop signaturescan be stored in the storage module and periodically re-correlated toform a new biometric loop signature which reflects the user's weightgain or loss.

The system described above may be used in any number of ways. The systemcan be used to determine a user's static and load bearing weight,determine a user's underlying medical condition, as well as determinewhether a treatment regime or activity has been effective or not. As iswell known, for some weight related conditions, the progression of thecondition affects a person's gait. Similarly, the regression of thecondition also affects the person's gait. As such, by comparing a user'sbaseline gait data with subsequently gathered gait data, the user'sstatic and load bearing weight can be monitored. If no change in gait isdetected, then the treatment regime or activity has neither progressednor regressed. If there is a noticeable change (as evidenced bydifferences in the loops derived from the baseline gait data and thesubsequent gait data) this may indicate progression, regression,efficacy of a treatment regimen or activity, or any number of healthchanges in the user. Of course, the determination as to which change hasoccurred needs to be determined by experimentation and clinical tests soas to determine correlation between the loop differences, the types ofdifferences, the amount of the difference, and the different conditionsand changes in static and load bearing weight.

Similarly, weight changes due to progression or regression of a user'smedical condition or due to the efficacy (or lack thereof) of a dietregimen can also be detected by changes in the pressure applied to thesensors when the user uses the system.

In another embodiment, all of the data processed by the data processingmodule may be internally encrypted so that external systems would not beprivy to the raw data transferred between the sensor module and the dataprocessing module. Prior to transmitting the raw data from the sensormodule to the data processing module, the data may be automaticallyencrypted. As can be understood, the data processing module may bephysically remote from the sensor module and, as such, the datatransmissions between these modules may be vulnerable to the outside. Inanother embodiment, the data processing module is contained within theinsole to ensure that any data transfers between the modules areslightly more secure.

In another embodiment, any data transfers or communications between thesystem and any outside diagnostic systems are encrypted, preferably withone time encryption schemes, to ensure that outsiders are not able tointercept any usable data. Such precautions would preserve the systemuser's privacy.

The system of the invention may be used to periodically determine if auser's static and/or load bearing weight is progressing or regressing.As well, it may be used to determine if any treatment regimen oractivity to which the user is being subjected to has had an effect onthe user or on the user's gait. The user's baseline gait data may begathered when the user first uses the system. Subsequent and ongoing useby the user would entail gathering subsequent gait data sets. The loopsderived from the baseline gait data set and the subsequent gait datasets can be compared with one another to determine any variances betweenthe user's gait data. The amount of change in the loop characteristicsfrom the different data sets can provide an indication as to the degreeof change in the user's static and/or load bearing weight. Large changesin the loop characteristics may indicate an acceleration in the user'sstatic and/or load bearing weight condition and may also indicatewhether the user's treatment regimen or activity (which may includepharmacological and/or dietary treatments) is effective or not.

It should be noted that any useful data processing means may be usedwith the invention. As such, ASICs, FPGAs, general purpose CPUs, andother data processing devices may be used, either as dedicatedprocessors for the calculations or as general purpose processors for adevice incorporating the invention.

The method steps of the invention may be embodied in sets of executablemachine code stored in a variety of formats such as object code orsource code. Such code is described generically herein as programmingcode, or a computer program for simplification. Clearly, the executablemachine code may be integrated with the code of other programs,implemented as subroutines, by external program calls or by othertechniques as known in the art.

The embodiments of the invention may be executed by a computer processoror similar device programmed in the manner of method steps, or may beexecuted by an electronic system which is provided with means forexecuting these steps. Similarly, an electronic memory means suchcomputer diskettes, CD-Roms, Random Access Memory (RAM), Read OnlyMemory (ROM) or similar computer software storage media known in theart, may be programmed to execute such method steps. As well, electronicsignals representing these method steps may also be transmitted via acommunication network.

Embodiments of the invention may be implemented in any conventionalcomputer programming language. For example, preferred embodiments may beimplemented in a procedural programming language (e.g. “C”) or an objectoriented language (e.g. “C++”). Alternative embodiments of the inventionmay be implemented as pre-programmed hardware elements, other relatedcomponents, or as a combination of hardware and software components.

Embodiments can be implemented as a computer program product for usewith a computer system. Such implementations may include a series ofcomputer instructions fixed either on a tangible medium, such as acomputer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk)or transmittable to a computer system, via a modem or other interfacedevice, such as a communications adapter connected to a network over amedium. The medium may be either a tangible medium (e.g., optical orelectrical communications lines) or a medium implemented with wirelesstechniques (e.g., microwave, infrared or other transmission techniques).The series of computer instructions embodies all or part of thefunctionality previously described herein. Those skilled in the artshould appreciate that such computer instructions can be written in anumber of programming languages for use with many computer architecturesor operating systems. Furthermore, such instructions may be stored inany memory device, such as semiconductor, magnetic, optical or othermemory devices, and may be transmitted using any communicationstechnology, such as optical, infrared, microwave, or other transmissiontechnologies. It is expected that such a computer program product may bedistributed as a removable medium with accompanying printed orelectronic documentation (e.g., shrink wrapped software), preloaded witha computer system (e.g., on system ROM or fixed disk), or distributedfrom a server over the network (e.g., the Internet or World Wide Web).Of course, some embodiments of the invention may be implemented as acombination of both software (e.g., a computer program product) andhardware. Still other embodiments of the invention may be implemented asentirely hardware, or entirely software (e.g., a computer programproduct).

A person understanding this invention may now conceive of alternativestructures and embodiments or variations of the above all of which areintended to fall within the scope of the invention as defined in theclaims that follow.

We claim:
 1. A method for determining changes in a user's weight using afoot-based gait device, said device having a plurality of sensors forgathering gait-based data, the method comprising: a) selecting two ofsaid plurality of sensors; b) gathering data from each sensor selectedin step a); c) correlating data gathered from said two sensors such thatdata points gathered at similar instances are matched with one anotherto result in data pairs; d) determining at least one characteristic loopfrom said data pairs, each characteristic loop being a loop formed whensaid data point pairs are plotted; e) retrieving baseline characteristicdata, said baseline characteristic data being derived from dataresulting from biometric data previously gathered from said user; f)determining a baseline characteristic loop from said baselinecharacteristic data; g) comparing characteristics of said at least onecharacteristic loop determined in step d) with characteristics of saidbaseline characteristic loop determined in step f); h) in the event acomparison of said characteristics compared in step g) produces resultsnot within predetermined limits, determining that a change has occurredin said user's weight; i) in the event a comparison of saidcharacteristics compared in step g) produces results withinpredetermined limits, determining that a change has not occurred in saiduser's weight.
 2. A method according to claim 1, wherein said device isan insole for gathering data regarding an individual's weight.
 3. Amethod according to claim 1, wherein step d) comprises determiningmultiple characteristic loops using multiple sets of data gathered fromsensors selected in step a) and averaging said multiple characteristicloops to result in an average loop.
 4. A method according to claim 3,wherein said average loop is compared to said baseline characteristicloop in step f).
 5. A method according to claim 1, further including thestep of applying a filter to data gathered from said sensors prior toproducing said data point pairs.
 6. A method according to claim 1,wherein said characteristic compared in step f) includes at least oneof: a length of said loops; a width of said loops; an angle of saidloops with a given axis; a direction of propagation of said loops; andan area of said loops.
 7. A method according to claim 2, wherein saidinsole is removable from a shoe worn by a user.
 8. A system fordiagnosing a change in a user's weight, the system comprising: a sensormodule comprising at least one sensor for gathering gait-based biometricdata from said user; a data storage module for storing data relating toa baseline loop, said baseline loop being a loop resulting from a plotof data pairs derived from data gathered from said sensor module whensaid user first uses said system; a data processing module for receivingdata from said sensor module, said data processing module being fordetermining characteristic loops from said data received from saidsensor module and for comparing characteristics of said characteristicloops with characteristics of said baseline loop; wherein a change insaid user's weight is indicated when said characteristics of saidcharacteristic loops are not within predetermined limits of saidcharacteristics of said baseline loops.
 9. A system according to claim8, wherein said sensor module comprises an insole for use with saiduser's shoe.
 10. A system according to claim 9, wherein said at leastone sensor detects and measures a force applied to said sensor module bya foot of a user as said user is standing and while said user iswalking.
 11. A system according to claim 8, wherein said at least onesensor detects and measures at least one of roll, pitch, or yaw of auser's foot as said user is walking.
 12. A system according to claim 9,wherein said at least one sensor detects a force applied to differentareas of said sensor module by said user's foot as said user is walking.13. A system according to claim 9, wherein said at least one sensorcomprises a plurality of sensors, each sensor being for detecting andmeasuring an amount of force applied to different areas of said sensormodule by said user's foot.
 14. A system according to claim 9, whereinsaid at least one sensor comprises a strain gauge configured and adaptedto measure forces applied to different areas of said insole by saiduser's foot.
 15. A system according to claim 9, wherein said insole isremovable from a user's shoe.